from functools import cmp_to_key

class Solution(object):
    def largestNumber(self, nums):
        """
        :type nums: List[int]
        :rtype: str
        """
        # 自定义比较函数
        def compare(a, b):
            # 比较 a+b 和 b+a 的大小
            if str(a) + str(b) > str(b) + str(a):
                return -1  # a应该排在b前面
            elif str(a) + str(b) < str(b) + str(a):
                return 1   # b应该排在a前面
            else:
                return 0   # 顺序不重要
        
        # 使用自定义比较函数排序
        nums = sorted(nums, key=cmp_to_key(compare))
        
        # 处理特殊情况：如果结果是全0，返回"0"
        result = ''.join(map(str, nums))
        return result if result[0] != '0' else '0'
